package conm;

/*
 * 案例四:数字加密
 *      某系统的数字密码是一个四位数，如1983，为了安全，
 *       需要加密后再传输，加密规则是：对密码中的每位数，
 *      都加5,再对10求余，最后将所有数字顺序反转，
 *      得到一串加密后的新数，请设计出满足本需求的加密程序！
        方法是否需要接收数据进行处理？
        方法是否需要返回数据？
        3. 方法内部的业务：将四位数字密码拆分成一个一个的数字，
*        存入到数组中去，遍历数组中的每个数字，
 *   按照题目需求进行加密！最后，再把加密后的数字拼接起来返回即可
 *
 *
 *
 * */
public class Test04 {
    public static void main(String[] args) {
    //调用方法,传值
        System.out.println(encode(1987));
    }

    //定义方法进行数字加密
    //形参列表需要 数字 返回值类型 加密后的数据
    public static String encode(int number) {
        //1.拆分数据进行存储到数组中
        //首先定义数组,存储数据
        int[] data = new int[4];
        //数字拆分
        data[0] = number / 1000;
        data[1] = number / 100 % 10;
        data[2] = number / 10 % 10;
        data[3] = number % 10;
        //2.遍历数组,依次加密
        for (int i = 0; i < data.length; i++) {
            data[i] = (data[i] + 5) % 10;
        }
        //5.对加密后的数据进行反转
        for (int i = 0,j = data.length - 1; i < j; i++, j--) {
            //数据交换
            int temp = data[i];
            data[i] = data[j];
            data[j] = temp;
        }

        //6.定义字符串进行,拼接
        String result = "";
        for (int i = 0; i < data.length; i++) {
            result += data[i];
        }

        //7,返回结果
        return result;
    }
}
